const express = require('express');
const router = express.Router();
const adminController = require('../controllers/admin');
const { authenticateAdmin } = require('../middleware/auth');
const upload = require('../config/upload');

// 管理后台登录路由
router.post('/login', adminController.login);

// 需要管理员身份验证的路由组
router.use(authenticateAdmin);

// 订单管理路由
router.get('/orders', adminController.getOrders); // 获取所有订单列表（支持筛选和分页）
router.get('/orders/:id', adminController.getOrderDetail); // 获取订单详情
router.put('/orders/:id/status', adminController.updateOrderStatus); // 更新订单状态

// 文件上传路由
router.post('/upload', upload.single('image'), (req, res) => {
  try {
    if (!req.file) {
      return res.status(400).json({
        success: false,
        message: '请选择要上传的图片'
      });
    }
    
    // 构造图片的URL路径（相对于服务器根路径）
    const filePath = '/uploads/' + req.file.filename;
    
    res.json({
      success: true,
      message: '图片上传成功',
      data: {
        filePath: filePath,
        fileName: req.file.filename
      }
    });
  } catch (error) {
    res.status(500).json({
      success: false,
      message: '图片上传失败',
      error: error.message
    });
  }
});

// 商品管理路由
router.get('/goods', adminController.getGoodsList); // 获取所有商品列表（支持筛选和分页）
router.get('/goods/:id', adminController.getGoodsDetail); // 获取商品详情
router.post('/goods', upload.single('image'), adminController.createGoods); // 创建商品（支持图片上传）
router.put('/goods/:id', upload.single('image'), adminController.updateGoods); // 更新商品（支持图片上传）
router.delete('/goods/:id', adminController.deleteGoods); // 删除商品

// 用户管理路由
router.get('/users', adminController.getUsers); // 获取用户列表（支持筛选和分页）
router.get('/users/:id', adminController.getUserDetail); // 获取用户详情

module.exports = router;